import Tips from "./Tips";
/**
 * 地图控件 管理 [todo]
 *
 * @export
 * @class Map
 * [地图](http://www.html5plus.org/doc/zh_cn/maps.html)
 */
export default class Map {
  /**
   * 获取GPS定位
   *
   * @static
   *
   * @memberOf Map
   */
  static geolocation(option = {
    provider: 'baidu'
  }) {
    return new Promise((resolve, reject) => {
      try {
        Tips.loading();
        plus.geolocation.getCurrentPosition(res => {
          Tips.loaded();
          // console.log(res);
          resolve(res);
        }, error => {
          Tips.loaded();
          // console.log(error);
          reject(error);
        }, option);
      } catch (error) {
        resolve({
          address: {
            city: '上海市'
          },
          coords: {
            latitude: 31.188677,
            longitude: 121.536908
          }
        });
      }
    });
  }

  /**
   * 初始化 地图
   *
   * @static
   * @param {any} id
   * @param {any} config
   *
   * @memberOf Map
   */
  static createMap(dom, config) {
    return new Promise((resolve, reject) => {
      const {
        longitude,
        latitude
      } = config;
      const option = Object.assign({
        center: new plus.maps.Point(longitude, latitude),
        // center: new plus.maps.Point(116.347496, 39.970191),
        traffic: true,
        zoom: 15
      }, config);
      let map = new plus.maps.Map(dom, option);
      resolve(map);
    });
  }

  /**
   * 生成地图坐标点
   *
   * @static
   * @param {any} longitude
   * @param {any} latitude
   * @returns
   *
   * @memberOf Map
   */
  static createPoint(longitude, latitude) {
    return new plus.maps.Point(longitude, latitude);
  }

  /**
   * 生成地图锚点
   *
   * @static
   * @param {any} longitude
   * @param {any} latitude
   * @returns
   *
   * @memberOf Map
   */
  static createMarker(longitude, latitude) {
    var point = new plus.maps.Point(longitude, latitude);
    return new plus.maps.Marker(point);
  }

  // /**
  //  * 创建地图标点Marker对象
  //  *
  //  * @static
  //  * @param {any} map
  //  * @param {any} config
  //  *
  //  * @memberOf Map
  //  */
  // static createMarker(map, config) {
  //     // var marker = new plus.maps.Marker(new plus.maps.Point(116.347496, 39.970191));
  //     // marker.setIcon("/assets/images/map/car.png");
  //     // marker.setLabel("HBuilder");
  //     // var bubble = new plus.maps.Bubble("打造最好的HTML5移动开发工具");
  //     // marker.setBubble(bubble);
  //     // map.addOverlay(marker);

  //     // 设置目标位置坐标点和其实位置坐标点
  //     // var dst = new plus.maps.Point(116.39131928,39.90793074); // 天安门
  //     // var src = new plus.maps.Point(116.335,39.966); // 大钟寺
  //     // // 调用系统地图显示
  //     // plus.maps.openSysMap( dst, "天安门", src );
  // }

  // static createBubble(map) {
  //     var marker=new plus.maps.Marker(new plus.maps.Point(116.347496,39.970191));
  // marker.setIcon("/logo.png");
  // marker.setLabel("HBuilder");
  // var bubble = new plus.maps.Bubble("打造最好的HTML5移动开发工具");
  // marker.setBubble(bubble);
  // map.addOverlay(marker);
  // }
}
